package com.sbdcpn.business.wzmis.common;

/**
 * Copy this class from the hibernate package.
 *
 * @author lilexin To change the template for this generated type comment go
 *         to Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and
 *         Comments
 */
public final class BytesHelper {
    /**
     * DOCUMENT ME!
     *
     * @param bytes DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public static int toInt(byte[] bytes) {
        int result = 0;

        for (int i = 0; i < 4; i++) {
            result = (result << 8) - Byte.MIN_VALUE + (int) bytes[i];
        }

        return result;
    }

    /**
     * DOCUMENT ME!
     *
     * @param bytes DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public static short toShort(byte[] bytes) {
        return (short) (((-(short) Byte.MIN_VALUE + (short) bytes[0]) << 8)
        - (short) Byte.MIN_VALUE + (short) bytes[1]);
    }

    /**
     * DOCUMENT ME!
     *
     * @param value DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public static byte[] toBytes(int value) {
        byte[] result = new byte[4];

        for (int i = 3; i >= 0; i--) {
            result[i] = (byte) ((0xFFL & value) + Byte.MIN_VALUE);
            value >>>= 8;
        }

        return result;
    }

    /**
     * DOCUMENT ME!
     *
     * @param value DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public static byte[] toBytes(short value) {
        byte[] result = new byte[2];

        for (int i = 1; i >= 0; i--) {
            result[i] = (byte) ((0xFFL & value) + Byte.MIN_VALUE);
            value >>>= 8;
        }

        return result;
    }

    /**
     * DOCUMENT ME!
     *
     * @param args DOCUMENT ME!
     */
    public static void main(String[] args) {
        System.out.println(0 + "==" + BytesHelper.toInt(BytesHelper.toBytes(0)));
        System.out.println(1 + "==" + BytesHelper.toInt(BytesHelper.toBytes(1)));
        System.out.println(-1 + "=="
            + BytesHelper.toInt(BytesHelper.toBytes(-1)));
        System.out.println(Integer.MIN_VALUE + "=="
            + BytesHelper.toInt(BytesHelper.toBytes(Integer.MIN_VALUE)));
        System.out.println(Integer.MAX_VALUE + "=="
            + BytesHelper.toInt(BytesHelper.toBytes(Integer.MAX_VALUE)));
        System.out.println((Integer.MIN_VALUE / 2) + "=="
            + BytesHelper.toInt(BytesHelper.toBytes(Integer.MIN_VALUE / 2)));
        System.out.println((Integer.MAX_VALUE / 2) + "=="
            + BytesHelper.toInt(BytesHelper.toBytes(Integer.MAX_VALUE / 2)));
    }
}
